package flyshoes.utils;

import com.auth0.jwt.JWT;
import com.auth0.jwt.algorithms.Algorithm;

import java.util.Date;

public class JwtUtil {
    private static final String key = "EverydayIsSunday";
    //接收业务数据，生成token并返回
    public static String genToken(Integer claims){
        return JWT.create()
                .withClaim("userId",claims)//添加载荷，接收业务数据
                .withExpiresAt(new Date(System.currentTimeMillis()+1000*60*60*168))//token过期时间，系统毫秒值+1000是1秒，*60是1分钟，再*60是1小时，再*12是12小时
                .sign(Algorithm.HMAC256(key));//指定算法，添加密钥
    }

    //接收验证token，返回业务数据
    public static Integer parseToken(String token){
        return JWT.require(Algorithm.HMAC256(key))//申请JWT的验证器
                .build()//生成验证器
                .verify(token)//解析token
                .getClaim("userId")//获取载荷
                .asInt();//作为长整型
    }
}
